Nowadays a plurality of types of user devices like smart phones, tablets, personal computers and televisions may be used by a user. In such a multi-user device world for example a user might read news from his smart phone on the road to the office, check e-mails from his personal computer in his office, read weather news on the digital display in a train or bus station and watch online videos on his television and/or his tablet when he is at home. Digital content is presented in different applications on different devices.
For a user however it is desirable to support applications which can be used on different user devices. However different user devices usually have different platforms and different screens and therefore application developers have to consider how to make a code cross-platform and how to make the applications adapt to multiple user devices.
One conventional way to solve this problem is to use web applications which are now gaining more and more attraction because of its “write once, deploy everywhere”-feature. Other applications are built using the unified script languages like HTML, JavaScript, CSS and run and top of a browser's run-time environment enabling applications running across multiple platforms. Any content provider, like Financial Time and New York Time, have already stopped their native applications on different user devices and launch their web applications to offer cross-device news reading experience.
However cross-platform applications are still restricted in terms of multi-device usage. As users are moving from one user device to another user device or use multiple user devices together, users expect their web applications to integrate into a consistent and seamless experience across multiple user devices. For example when a user is moving from one room to another room and talking to friend online he expects to have a seamless video chatting experience as he is shifting his user device from smart phone to tablet or laptop.
Another example is that when a user is watching television at home while using a tablet to talk with his friends through an online social network. He expects to use his tablet as a so called “companion” user device to control a content on his television. For example he would like to switch television channels without leaving his tablet. An even further example is collaboration of user devices: When for example three users are located in different places and each of them has a personal user device, they might wish to use the same web application together, for example, co-browsing the same web page or co-viewing the same online photo album. They might also like to share their interactions with others on multiple user devices collaboratively.
The above-mentioned operations or principles like device shifting, “companion” of devices and device collaboration are not possible with conventional methods and systems. Conventionally the same code base for applications is converted in different versions each of which is suitable or adapted for a different type of user device. Based in the conventional frame work for a single user with two user devices the same application can run on both user devices but runs in a separate way. No cross-device sharing and collaboration is possible.
In US 2003/0229900 A1 systems and methods for navigating hyper media using multiple coordinated input/output devices are shown. On each device, for example a television set, a personal digital assistant or a smartphone, an application is run separately and device states may be exchanged or updates between those devices.
In U.S. Pat. No. 7,337,392 B2 a method is shown for generating a minimum set of simplified and navigable web contents from the single web document which is oversized for targeted smaller devices. In particular a request for HTTP content is issued by user device and transmitted via a HTTP handler or web server. The web server returns the document to the HTTP handler parsing the content running on a content device. The content device generates a set of hyperlinked and simplified document partitions resulting in a “condensed” content suitable for a smaller device. Then the condensed content is prepared via HTML transcoder and HTTP handler then returns the simplified condensed content to the smaller device.